-
Notifications
You must be signed in to change notification settings - Fork 32
✨ dynamic-sidecar allows to import old state from legacy services 🚨
#7675
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
✨ dynamic-sidecar allows to import old state from legacy services 🚨
#7675
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #7675 +/- ##
==========================================
+ Coverage 87.53% 88.96% +1.43%
==========================================
Files 1811 1453 -358
Lines 70260 60117 -10143
Branches 1137 470 -667
==========================================
- Hits 61500 53483 -8017
+ Misses 8451 6514 -1937
+ Partials 309 120 -189
Continue to review full report in Codecov by Sentry.
🚀 New features to boost your workflow:
|
dynamic-sidecar allows to import old state from legacy services
dynamic-sidecar allows to import old state from legacy servicesdynamic-sidecar allows to import old state from legacy services 🚨
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR introduces support for importing and migrating legacy service state by adding a new LegacyState model, integrating it into configuration, workflows, and environment specs.
- Adds a
LegacyStatePydantic model and validation inPathMappingsLabel - Extends dynamic-sidecar settings and long-running tasks to handle legacy state paths
- Propagates
DY_SIDECAR_LEGACY_STATEthrough Docker environment variables and SDK data manager operations
Reviewed Changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| services/dynamic-sidecar/.../core/settings.py | Adds DY_SIDECAR_LEGACY_STATE configuration field |
| services/dynamic-sidecar/.../modules/long_running_tasks.py | Implements _get_legacy_state_with_dy_volumes_path and passes legacy_state to pull/push |
| services/director-v2/.../docker_service_specs/sidecar.py | Exposes DY_SIDECAR_LEGACY_STATE as an environment variable |
| services/director-v2/tests/unit/.../test_modules_dynamic_sidecar_docker_service_specs.py | Updates expected spec to include "DY_SIDECAR_LEGACY_STATE": "null" |
| services/director-v2/tests/unit/.../test_modules_dynamic_sidecar_docker_service_specs_sidecar.py | Adds DY_SIDECAR_LEGACY_STATE to the env var list in sidecar spec tests |
| packages/simcore-sdk/src/simcore_sdk/node_data/data_manager.py | Adds legacy_state parameters to pull and push functions |
| packages/simcore-sdk/tests/unit/test_node_data_data_manager.py | Parametrizes test_pull_legacy_archive to cover legacy archives |
| packages/models-library/src/models_library/service_settings_labels.py | Introduces LegacyState model, integrates into PathMappingsLabel, and adds a validator |
Comments suppressed due to low confidence (1)
packages/simcore-sdk/src/simcore_sdk/node_data/data_manager.py:199
- There are no unit tests covering the new
legacy_destination_pathcode path in_pull_legacy_archiveor thelegacy_statebranch inpush/pull. Consider adding tests for bothlegacy_statepresent/absent scenarios.
async def _pull_legacy_archive(
packages/models-library/src/models_library/service_settings_labels.py
Outdated
Show resolved
Hide resolved
packages/models-library/src/models_library/service_settings_labels.py
Outdated
Show resolved
Hide resolved
services/dynamic-sidecar/src/simcore_service_dynamic_sidecar/modules/long_running_tasks.py
Show resolved
Hide resolved
...r-v2/src/simcore_service_director_v2/modules/dynamic_sidecar/docker_service_specs/sidecar.py
Show resolved
Hide resolved
packages/models-library/src/models_library/service_settings_labels.py
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thx
packages/models-library/src/models_library/service_settings_labels.py
Outdated
Show resolved
Hide resolved
packages/models-library/src/models_library/service_settings_labels.py
Outdated
Show resolved
Hide resolved
|
@Mergifyio queue |
🛑 The pull request has been removed from the queue
|
|
This pull request has been removed from the queue for the following reason: The merge conditions cannot be satisfied due to failing checks: You may have to fix your CI before adding the pull request to the queue again. |
|
@Mergifyio requeue |
✅ This pull request will be re-embarked automaticallyThe followup |
🛑 The pull request has been removed from the queue
|
|
|
This pull request has been removed from the queue for the following reason: The merge conditions cannot be satisfied due to failing checks:You may have to fix your CI before adding the pull request to the queue again. |
|
@Mergifyio requeue |
✅ This pull request will be re-embarked automaticallyThe followup |
✅ The pull request has been merged automaticallyThe pull request has been merged automatically at c8bbdc2 |



What do these changes do?
Allows to define services with the new
LegacyStateattribute insidePathMappingsLabelwhich maps the state from the legacy version to the state in the new style version of the service.Example
Jupyter FEniCS:legacy workspace

new style workspace (pleas note the inputs and output have been copied over)

Related issue/s
How to test
Dev-ops